package com.osdp.home.service;


import com.osdp.home.dto.LoginUserVo;
import com.osdp.home.dto.MenuVo;
import com.osdp.sc.dto.PermissionDTO;
import com.osdp.uc.dto.UserDTO;

import java.util.List;
import java.util.Set;

public interface IHomePageService {
    /**
     * 获取登录用户的所有信息
     * @param userId
     * @return LoginUserVo
     */
    LoginUserVo queryUserDetails(String userId);

    /**
     * 查询用户ID获取所有菜单资源
     * @param userId
     * @return List<PermissionVo>
     */
    List<PermissionDTO> queryPermissionsByUserId(String userId);

    /**
     * 获取当前用户的所有按钮权限
     * @param permissionList
     * @return List<PermissionVo>
     */
    List<PermissionDTO> getPermissionButton(List<PermissionDTO> permissionList);

    /**
     * 菜单树形数据结构，用于主界面菜单显示
     * @param permissionList
     * @return Set<MenuVo>
     */
    Set<MenuVo> getPermissionMenuTree(List<PermissionDTO> permissionList);

    /**
     * 根据用户名获取用户信息
     * @param username String
     * @return UserVo
     */
    UserDTO queryUserByUserName(String username);

    /**
     * 更新密码
     * @param id String
     * @param passWord String
     * @return boolean
     */
    boolean updatePassWord(String id, String passWord);
}
